<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    // includes(),startsWith(),endsWith()
    // 传统上，JavaScript只有indexOf方法，可以用来确定一个字符串是否包含在另一个字符串中，ES6有提供了三种新的方法。
    // includes():返回布尔值，表示是否找到了参数字符串
    // startsWith():返回布尔值，表示参数字符串是否在原字符串的头部
    // endsWith():返回布尔值，表示参数字符串是否存在原字符串的尾部

    var str = 'hello world'
    var str1 = 'hell'
    var str2 = 'ld'
    console.log(str.includes(str1)) //true  判断str字符串里有没有str1字符串
    console.log(str.startsWith(str1)) //true    判断str字符串是否以str1字符串开头
    console.log(str.endsWith(str1)) //false    判断str字符串是否以str1字符串结尾

    //这三个方法都支持第二个参数，表示开始搜索的位置
    console.log(str.includes(str2, 7))  //true 从str的第7个位置开始搜索str2字符串
    console.log(str.startsWith(str2, 9)) //true 从str的第9个位置开始搜索str2字符串
    console.log(str.endsWith(str2,11)) //true 指定一个有效长度来决定需要考虑的字符串部分

    //repeat() 方法返回一个新字符串，表示将原字符串重复n次
    var str3 = 'x'
    console.log(str3.repeat(3))  //重复输出指定字符串次数  例如需要输出x三次，就可以使用repeat()方法

    //padStart() , padEnd() ES2017 引入了字符串补全长度的更能。如果某个字符串不够指定长度，会在头部或尾部补全。
    // padStart() 用于头部补全，padEnd() 用于尾部补全
    var str4 = 'hello'
    console.log(str4.padStart(9,'YANG')) //YANGhello  头部补全 参数1 补全长度，参数2 补全字符
    console.log(str4.padEnd(11,' world')) //helloworld 尾部补全 参数1 补全长度，参数2 补全字符

    //trimStart(),trimEnd() ES2019 对字符串实例新增了trimStart()和trimEnd()这两个方法，它们的行为与trim()一致，
    // trimStart()消除字符串头部的空格，trimEnd()消除字符串尾部的空格。它们返回的都是新字符串，不会修改原始字符串
    var str5 = '  hello  '
    console.log(str5.trimStart()) //去除头部的空格
    console.log(str5.trimEnd()) //去除尾部的空格
    console.log(str5.trim()) //去除两端的空格


    // at()方法接受一个整数作为参数，返回参数指定位置的字符，支持索引（即倒数的位置）
    var str6 = 'helloworld'
    // 索引从0开始 倒数从-1开始
    console.log(str6.at(0)) // h
    console.log(str6.at(-1)) // d
    //温馨提示：如果参数位置超出了字符串的范围，则返回undefined
    console.log(str6.at(12)) //undefined


</script>